from django.shortcuts import HttpResponse,render,redirect
from django.utils.deprecation import MiddlewareMixin
import re
from django.urls import reverse
class PermissionMiddleWare(MiddlewareMixin):
    def process_request(self, request):
        # 获取当前路径
        curr_path = request.path
        black_list = ["/video_upload/",'/basic/','/videos/','/users/']  # 确保这里的路径是正则表达式或确切的字符串
        # 检查路径是否在黑名单中
        for w in black_list:
            if re.search(r'^' + re.escape(w), curr_path):  # 使用 re.escape 防止特殊字符干扰
                if not request.user.is_authenticated:
                    # 用户未登录，重定向到登录页面
                    login_url = reverse('user_login')  # 假设在 URLconf 中定义了 name='user_login'
                    return redirect(login_url)
                    # 如果用户已登录，则不进行任何重定向，继续处理请求
                # 注意：这里不需要对已登录用户进行重定向
                break  # 如果只是检查一次匹配，可以跳出循环

        # black_list = ["/users/","/basic/",'/videos/index/']  # 确保这里的路径是正则表达式或确切的字符串
        # # 检查路径是否在黑名单中
        # for w in black_list:
        #     if re.search(r'^' + re.escape(w), curr_path):  # 使用 re.escape 防止特殊字符干扰
        #         if not request.user.is_superuser:
        #             # 用户未登录，重定向到登录页面
        #             login_url = reverse('user_login')  # 假设在 URLconf 中定义了 name='user_login'
        #             return redirect(login_url)
        #             # 如果用户已登录，则不进行任何重定向，继续处理请求
        #         # 注意：这里不需要对已登录用户进行重定向
        #         break  # 如果只是检查一次匹配，可以跳出循环


        #验证是否登陆
        #print(request.user.is_authenticated)
        # if not request.user.is_authenticated:
        #     return redirect("/myuser_login/")
        
        #这里还可以继续处理一些权限细节，不在展开
        #比如晚上12点以后关闭商城